/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sv.com.intesal.proyecto.controlador;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import sv.com.intesal.clases.Mensaje;
import sv.com.intesal.conexion.cConexion;
import sv.com.intesal.proyecto.bean.AsignarMaterialTipoProyecto;
import sv.com.intesal.proyecto.sql.SQLAsignarMaterialTipoProyecto;

/**
 *
 * @author ejerez
 */
public class AsignarMaterialTipoProyectoControlador {

    public void setMantenimiento(AsignarMaterialTipoProyecto am) throws Exception {
        PreparedStatement ps = null;
        try {

            if (am.getCodigo_mtp() == null) {
                ps = cConexion.conectar().prepareStatement(SQLAsignarMaterialTipoProyecto.insertMaterial_TipoProyecto);
            } else {
                ps = cConexion.conectar().prepareStatement(SQLAsignarMaterialTipoProyecto.modificarMaterial_TipoProyecto);
                ps.setInt(3, am.getCodigo_mtp());
            }
            ps.setInt(1, am.getId_dm());
            ps.setInt(2, am.getId_tp());
            ps.executeUpdate();


            Mensaje m = new Mensaje();
            if (am.getCodigo_mtp() == null) {
                m.messageInfo(m.getIinformation());
            } else {
                m.messageInfo(m.getImodificada());
            }
        } catch (Exception e) {
            throw new Exception(e);
        }
    }

    public void eliminarItem(AsignarMaterialTipoProyecto am) throws Exception {

        try {
            PreparedStatement ps = cConexion.conectar().prepareStatement(SQLAsignarMaterialTipoProyecto.elminarMaterial_TipoProyecto);
            ps.setInt(1, am.getCodigo_mtp());
            ps.executeUpdate();

            Mensaje m = new Mensaje();
            m.messageInfo(m.getIeliminada());
        } catch (Exception e) {
            throw new Exception(e);
        }
    }

    public List<AsignarMaterialTipoProyecto> getMaterial_x_TipoProyecto(Integer codigo_tp) throws Exception {

        List<AsignarMaterialTipoProyecto> lista = new ArrayList<AsignarMaterialTipoProyecto>();
        try {

            PreparedStatement ps = cConexion.conectar().prepareStatement(SQLAsignarMaterialTipoProyecto.getMaterial_x_TipoProyecto);
            ps.setInt(1, codigo_tp);
            ResultSet rs = ps.executeQuery();

            while (rs.next()) {
                AsignarMaterialTipoProyecto am = new AsignarMaterialTipoProyecto();
                am.setCodigo_mtp(rs.getInt("codigo_mtp"));

                /*MATERIAL_SUCURSAL*/
                am.setId_dm(rs.getInt("id_dm"));

                /*MATERIAL*/
                am.setId_m(rs.getInt("id_m"));
                am.setNombre_m(rs.getString("nombre_m"));
                am.setDescripcion_m(rs.getString("descripcion_m"));
                am.setCodigo_barra_m(rs.getString("codigo_barra_m"));

                /*TIPO PROYECTo*/
                am.setId_tp(rs.getInt("id_tp"));
                am.setNombre_tp(rs.getString("nombre_tp"));
                lista.add(am);
            }
            return lista;
        } catch (Exception e) {
            throw new Exception(e);
        }
    }

    public List<AsignarMaterialTipoProyecto> getFillGrid() throws Exception {

        List<AsignarMaterialTipoProyecto> lista = new ArrayList<AsignarMaterialTipoProyecto>();
        try {
            ResultSet rs = cConexion.conectar().prepareStatement(SQLAsignarMaterialTipoProyecto.getMateriales_x_TipoProyectos).executeQuery();

            while (rs.next()) {
                AsignarMaterialTipoProyecto am = new AsignarMaterialTipoProyecto();
                am.setCodigo_mtp(rs.getInt("codigo_mtp"));

                /*MATERIAL_SUCURSAL*/
                am.setId_dm(rs.getInt("id_dm"));

                /*MATERIAL*/
                am.setId_m(rs.getInt("id_m"));
                am.setNombre_m(rs.getString("nombre_m"));
                am.setDescripcion_m(rs.getString("descripcion_m"));
                am.setCodigo_barra_m(rs.getString("codigo_barra_m"));

                /*TIPO PROYECTo*/
                am.setId_tp(rs.getInt("id_tp"));
                am.setNombre_tp(rs.getString("nombre_tp"));
                lista.add(am);
            }
            return lista;
        } catch (Exception e) {
            throw new Exception(e);
        }
    }

    private Boolean validar_AM(Integer id_dm,Integer id_tp) throws Exception {

        try {
            PreparedStatement ps = cConexion.conectar().prepareStatement(SQLAsignarMaterialTipoProyecto.elminarMaterial_TipoProyecto);
            ps.setInt(1, id_dm);
            ps.setInt(1, id_tp);
            ResultSet rs = ps.executeQuery();
            rs.next();

            if (rs.getInt("cantidad") == 0) {
                return false;
            }
            return true;
        } catch (Exception e) {
            throw new Exception(e);
        }
    }
}
